package User;

import Book.BookList;
import Operation.ioperation;

public abstract class user {
    //既然是父子类关系，自然同一个家族用protected作共有属性
    //共有属性：书名
    protected String name;


    //构造方法
    public user(String name) {
        this.name = name;
    }

    //构造一个功能数组ioPerations方法用来分别存各自的功能，以实现管理员与普通用户在操作上的独立性
    // 再构建一个方法来实现数组对应的功能的实现
    public ioperation[] Ioperations;


     /*
    抽象方法menu：用于实现各自菜单的打印
                  需要重写
    参数：无
    返回值：用户需要实现的功能根据菜单上的数字进行的返回
    */
    public abstract int menu();

    /*
    toOperation方法:为了实现各自操作操作各自的功能，实现相互独立
            通过输入用户菜单的选项的数字
    进而操作功能数组通过下标来确定要实现的操作的方法work
    参数：用户菜单的选项的数字，以及操作的对象
    返回值：无
    */
    public void toOperation(int choice, BookList bookList){
        Ioperations[choice].work(bookList);
    }

}
